package com.lcredu.seckill.util;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;

/**
 * @author 黎长容
 * @date 2025-08-23 17:29
 * 给每个用户登录密码加密加盐
 */
@Slf4j
public class MD5Util {
    //1. 用户输入密码,接收到加第一次盐
    //2. 第一次加密MD5形成中间密码
    //3. 第二次加密MD5 加密第一次密码加盐,形成后端密码
    private static String SALT = "iva7OGh&";

    //加密方法
    public static String MD5(String src) {
        return DigestUtils.md5Hex(src);
    }

    public static String inputPassToMidPass(String inputPass) {
        log.info("salt.charAt(0)={},salt.charAt(6)={}", SALT.charAt(0), SALT.charAt(6));
        String src = SALT.charAt(0) + inputPass + SALT.charAt(6);
        return MD5(src);
    }

    public static String midPassToDBPass(String midPass, String salt) {
        log.info("salt.charAt(1)={},salt.charAt(5)={}", salt.charAt(1), salt.charAt(5));
        //从后端得到这个盐
        String src = salt.charAt(1) + midPass + salt.charAt(5);
        return MD5(src);
    }

    //一步到位
    public static String inputPassToDBPass(String inputPass, String salt) {
        String midPass = inputPassToMidPass(inputPass);
        String dbPass = midPassToDBPass(midPass, salt);
        return dbPass;
    }
}
